#include <stdio.h>
#include <string.h>

#define Base 1000000
#define Num 21//数组长度

int sum[Num];//和
int n[Num - 1];//一个大数
int m[Num - 1];//一个大数

//读入大数
int ReadNum(int a[Num]) {
    int InNum, c, i, j, k, l;
    char s[Num] = {'0'};//初始化
    InNum = 0;
    i = 0;
    j = 0;//初始化赋值
    while ((c = fgetc(stdin)) != EOF && c != '\n') {//输入数
        if (i < Num)
            s[i++] = c;    //存入字符数组
        else
            break;
    }
    l = strlen(s);
    k = (l + 5) / 6;
    for (i = 0; i < strlen(s); i++) {
        //例： 输入：12345678 格式化：n={'1','2','3','4','5','6'，'7'，'8'，'9'}-->a={123,456789}，转化成1000000进制
        InNum = InNum * 10 + s[i] - '0';
        j++;
        if (((i + 1) == (l % 6)) && ((l % 6) != 0)) {    //当输入的数对6取余不为0时，余的长度的数，例：123456789--> 123 456789 ,InNum=123
            a[--k] = InNum;
            j = 0;
            InNum = 0;
            continue;
        }
        if (j % 6 == 0) {    //当输入的数对6取余为0时，例：123456789--> 123 456789 ,InNum=456789
            a[--k] = InNum;
            InNum = 0;
        }
    }
    return (l + 5) / 6;
}

//大数相加
int AddNum(int a[Num - 1], int b[Num - 1], int l) {
    int carry, i, add;
    carry = 0;
    for (i = 0; i < l; ++i) {
        add = (a[i] + b[i])+ carry;    //两数相加,并加上前一次的进位carry
        sum[Num - i - 1] = (add % Base);   //add对Base取余，达到去除当前进位.
        carry = add / Base;    //进位
        if (carry != 0 && i == l - 1) {   //是否进位，且为最后个数
            sum[Num - i - 2] = carry;
        }
    }
    if (carry != 0)    //有进位总长度加1
        return l + 1;
    else
        return l;
}

void PrintNum(int a[Num], int l) {
    int i;
    printf("sum: ");
    for (i = Num - l; i < Num; i++) {
        printf("%06d ", a[i]);
    }
    printf("\n");
}

//主函数
int main(int argc, char *argv[]) {
    int i,lenN, lenM, lenS;
    for (i = 0; i <Num-1 ; ++i) {    //初始化数组
        n[i]=0;
        m[i]=0;
    }
    lenN = ReadNum(n);    //获取第一个数的长度
    lenM = ReadNum(m);    //获取第二个数的长度
    if (lenM >= lenN)     //用长的加短的数
        lenS = AddNum(n, m, lenM);
    else
        lenS = AddNum(m, n, lenN);
    PrintNum(sum, lenS);    //输出结果
}

